<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // var x = 30;
        // function test() {
        //     alert(x);
        //     var x = 10;
        //     alert(x);
        //     x = 20;
        //     function x() { };
        //     alert(x);
        // }
        // test();

        // let [x = 1] = [null]
        // console.log('x ',x);

        // function test(x, y, z) {
        //     alert(test.length);
        //     alert(arguments.length);
        //     alert(arguments.callee === test); alert(arguments[2]);
        // }
        // test(10, 20);

        // let a = 0 && 5
        // alert(a)

        // var result = 0;
        // for (var i = 0; i < 10; i++) {
        //     for (var j = 0; j < 10; j++) {
        //         if (i == 5 && j === 5) {
        //             continue;
        //         }
        //         result++;
        //     }
        // }
        // // console.log(result);

        // console.log(2 <<2);

        // let { a = 100 } = undefined
        // console.log(a)

        // var foo = {
        //     bar: function () {
        //         console.log(this.baz);
        //     },
        //     baz: 1
        // };

        // // 自执行函数, 定义和执行一起
        // (function () {
        //     console.log('arguments ',arguments);
        //     arguments[0]()  // 函数体代码 获取第一个参数执行
        //     // 自执行函数this->window
        // })(foo.bar)

        // function sayn(x,y,z){
        //     return x + y + z
        // }
        // console.log(sayn(...[1,2,3]));


        // if (a == 1) {
        //     let a = 2
        // } else {
        //     let a = 3
        // }
        // console.log(a);

        const obj = {
            name: 'jack',
            say: function () {
                console.log('this ', this)
            }
        };

        (function () {
            console.log(this);
            console.log(arguments);
            arguments[0]()
        })(obj.say)

    </script>
</body>

</html>